Higher-Order Model Checking by Abstraction of Type Derivation Rewriting
نویسندگان
چکیده
Model checking of recursion schemes, known as higher-order model checking, has actively been studied recently and is becoming a basis for verification of higher-order programs. Some practical model checking algorithms have been developed based on the reduction from model checking to intersection type inference, but they are not completely satisfactory. We propose a novel approach to developing model checking algorithms, based on abstract interpretation of a rewriting system on (incomplete) derivations in a “rigid” intersection type system. The derivation rewriting can be regarded as a simple type inference process that is sound and complete in a certain sense. However it is not practical since the state space (i.e. the set of all incomplete derivations) is too large. We construct an abstraction of the rewriting system, and develop an algorithm based on the abstract model. We have implemented the algorithm and confirmed that it outperforms previous model checkers in certain cases.
منابع مشابه
ar X iv : 1 50 2 . 04 65 3 v 1 [ cs . F L ] 1 6 Fe b 20 15 Rewriting Higher - Order Stack Trees ⋆
Higher-order pushdown systems and ground tree rewriting systems can be seen as extensions of suffix word rewriting systems. Both classes generate infinite graphs with interesting logical properties. Indeed, the model-checking problem for monadic second order logic (respectively first order logic with a reachability predicate) is decidable on such graphs. We unify both models by introducing the ...
متن کاملAutomata-Based Abstraction for Automated Verification of Higher-Order Tree-Processing Programs
Higher-order model checking has been recently applied to automated verification of higher-order functional programs, but there have been difficulties in dealing with algebraic data types such as lists and trees. To remedy the problem, we propose an automata-based abstraction of tree data, and a counterexample-guided refinement of the abstraction. By combining them with higher-order model checki...
متن کاملThe Polymorphic Rewriting-calculus: [Type Checking vs. Type Inference]
The Rewriting-calculus (Rho-calculus), is a minimal framework embedding Lambdacalculus and Term Rewriting Systems, by allowing abstraction on variables and patterns. The Rho-calculus features higher-order functions (from Lambda-calculus) and pattern-matching (from Term Rewriting Systems). In this paper, we study extensively a second-order Rho-calculus à la Church (RhoF) that enjoys subject redu...
متن کاملModel Checking Properties on Reduced Trace Systems
Temporal logic has become a well-established method for specifying the behavior of distributed systems. In this paper, we interpret a temporal logic over a partial order model that is a trace system. The satisfaction of the formulae is directly defined on traces on the basis of rewriting rules; so, the graph representation of the system can be completely avoided; moreover, a method is presented...
متن کاملDagstuhl Seminar on Theory and Practice of Higher-Order Parallel Programming
Parallel Machines: Organizing Higher Order Functions for Parallel Program Derivation John O’Donnell and Gudula Rnger University of Glasgow, UK, and Universitt Saarbrcken, Germany We need to take a flexible approach in designing a family of higher order functions to support parallel program derivation. For example, it isn’t enough just to define scan and give it a log time cost model, because th...
متن کامل